class Numbers
{
private:
    /* data */
public:
    Numbers(/* args */)
    {
    }

    ~Numbers()
    {
    }

    /* 求两个数的最大公约数(Greatest Common Divisor),使用辗转相除法*/
    int gcd1(int a, int b)
    {
        if(a<b)//交换a和b的值，确保a>b
        {
            int tmp = a;
            a = b;
            b = tmp;
        }
        while(b!=0)
        {
            int tmp = a%b;
            a = b;
            b = tmp;
        }
        return a;
    }
    /* 求两个数的最大公约数，使用更相减损法*/
    int gcd2(int a, int b)
    {
        while(a!=b)
        {
            if(a>b)
            {
                a = a - b;
            }
            else
            {
                b = b - a;
            }
        }
        return a;
    }
    /* 求两个数的最小公约数,最大公约数*最小公倍数 = a * b */
    int lcm(int a, int b)
    {
        return (a * b) / gcd1(a, b);
    }
};
